package controlador;

import java.awt.Window;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.WindowEvent;
import java.sql.ResultSet;
import java.sql.SQLException;

import javax.swing.JFrame;
import javax.swing.JOptionPane;

import modelo.Sentencias;

import vista.VistaCategoria;
import vista.VistaCliente;
import vista.VistaComprar;
import vista.VistaIngrediente;
import vista.VistaMenu;
import vista.VistaOrden;
import vista.VistaProducto;
import vista.VistaReporteExistencia;
import vista.VistaReporteIngredientes;
import vista.VistaReporteVentasProductos;

public class ControladorMenu implements ActionListener, ItemListener  {
	public VistaMenu vistaMenu;


	public ControladorMenu(VistaMenu vMenu)
	{
		vistaMenu=vMenu;
	
	}
	
	public void actionPerformed(ActionEvent ae) {
		String arg =(String)ae.getActionCommand();
		if(arg.equals("Registrar Cliente")){
			VistaCliente vCliente=new VistaCliente();
			vCliente.setLocation(50, 50);
			vCliente.setResizable(true);
			vCliente.setVisible(true);
			vCliente.txtCedula.requestFocus();
		}
		if (arg.equals("Registrar Producto")){
			VistaProducto vProducto = new VistaProducto();
			vProducto.setLocation(50, 50);
			vProducto.setResizable(true);
			vProducto.setVisible(true);
			vProducto.txtCodProducto.requestFocus();
			
		}
	if (arg.equals("Registrar Categoria")){
		VistaCategoria vCategoria= new VistaCategoria();
		vCategoria.setLocation(50, 50);
		vCategoria.setResizable(true);
		vCategoria.setVisible(true);
	}
	
	if (arg.equals("Registrar Ingrediente")){
		VistaIngrediente i = new VistaIngrediente();
		i.setLocation(50, 50);
		i.setResizable(true);
		i.setVisible(true);
		
	}
	if (arg.equals("Comprar Ingrediente")){
		VistaComprar vComprar = new VistaComprar();
		vComprar.setLocation(50, 50);
		vComprar.setResizable(true);
		vComprar.setVisible(true);
	}
	if (arg.equals("Registrar Orden")){
		VistaOrden vOrden = new VistaOrden();
		vOrden.setLocation(50, 50);
		vOrden.setResizable(true);
		vOrden.setVisible(true);
	}
	 if (arg.equals("Cantidad disponibles de ingredientes")){
		     ResultSet rs;
	    	Sentencias MyConex = new Sentencias();
			rs=MyConex.obtenerIngredientes();
		    VistaReporteExistencia vExistencia=new VistaReporteExistencia();
			try {
				vExistencia = new VistaReporteExistencia("Cantidad Existente de cada Ingrediente",rs);
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			vExistencia.setLocation(50, 50);
			vExistencia.setResizable(true);
			vExistencia.setSize(400,300);
			vExistencia.setVisible(true);
		
	     }
	 if (arg.equals("Prod. Vendidos Ordenados por Monto Ascendentemente")){
	    	ResultSet rs;
	    	Sentencias MyConex = new Sentencias();
			rs=MyConex.obtenerProdVendMontoAsc();
		    VistaReporteVentasProductos vVentas=new VistaReporteVentasProductos();
			try {
				vVentas = new VistaReporteVentasProductos("Productos Vendidos Ordenado Ascendentemente por monto",rs);
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			vVentas.setLocation(50, 50);
			vVentas.setResizable(true);
			vVentas.setSize(400,300);
			vVentas.setVisible(true);
		
	     }
	 if (arg.equals("Prod. Vendidos Ordenados por Monto Descendentemente")){
	    	ResultSet rs;
	    	Sentencias MyConex = new Sentencias();
			rs=MyConex.obtenerProdVendMontoDesc();
		    VistaReporteVentasProductos vVentas=new VistaReporteVentasProductos();
			try {
				vVentas = new VistaReporteVentasProductos("Productos Vendidos Ordenado Descendentemente por monto",rs);
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			vVentas.setLocation(50, 50);
			vVentas.setResizable(true);
			vVentas.setSize(400,300);
			vVentas.setVisible(true);
		
	     }
	 if (arg.equals("Prod. Vendidos Ordenados por Cantidad Ascendentemente")){
	    	ResultSet rs;
	    	Sentencias MyConex = new Sentencias();
			rs=MyConex.obtenerProdVendCantidadAsc();
		    VistaReporteVentasProductos vVentas=new VistaReporteVentasProductos();
			try {
				vVentas = new VistaReporteVentasProductos("Productos Vendidos Ordenado Ascendentemente por cantidad",rs);
			} catch (SQLException e) {
				e.printStackTrace();
			}
			vVentas.setLocation(50, 50);
			vVentas.setResizable(true);
			vVentas.setSize(400,300);
			vVentas.setVisible(true);
		
	     }
	 if (arg.equals("Prod. Vendidos Ordenados por Cantidad Descendentemente")){
	    	ResultSet rs;
	    	Sentencias MyConex = new Sentencias();
			rs=MyConex.obtenerProdVendCantidadDesc();
		    VistaReporteVentasProductos vVentas=new VistaReporteVentasProductos();
			try {
				vVentas = new VistaReporteVentasProductos("Productos Vendidos Ordenado Descendentemente por cantidad",rs);
			} catch (SQLException e){
				e.printStackTrace();
			}
			vVentas.setLocation(50, 50);
			vVentas.setResizable(true);
			vVentas.setSize(400,300);
			vVentas.setVisible(true);
		
	     }
	 if (arg.equals("Ingredientes Mas Usados")){
	    	ResultSet rs1;
	    	Sentencias MyConex = new Sentencias();
			rs1=MyConex.obtenerIngredientesMasUsados();
			VistaReporteIngredientes vVentas=new VistaReporteIngredientes();
			try {
				vVentas = new VistaReporteIngredientes("Productos Vendidos Ordenado Descendentemente por cantidad",rs1);
			} catch (SQLException e){
				e.printStackTrace();
			}
			vVentas.setLocation(50, 50);
			vVentas.setResizable(true);
			vVentas.setSize(400,300);
			vVentas.setVisible(true);
		
	     }
	    if (arg.equals("Salir")){
			int opcion = JOptionPane.showConfirmDialog(new JFrame(),"Desea salir del sistema?",
				     "Mensaje de Confirmacion",JOptionPane.YES_NO_OPTION,
				     JOptionPane.QUESTION_MESSAGE);
		if (opcion == JOptionPane.YES_OPTION)
		{
			vistaMenu.dispose();
			System.exit(0);
		}
		}
	}
	public void windowClosing(WindowEvent e) {
		Window w = (Window) e.getSource();
		w.setVisible(false);
		w.dispose();
		System.out.println("Se cerro la Aplicacion!!!");
		System.exit(0);
	}

	public void itemStateChanged(ItemEvent arg0) {
		vistaMenu.repaint();
	}	
	
	
}
